
//跳转至源码生成页面
function toTableList(){
	window.location.href='toTableCode.action';
}

$(function(){
	// 加载表格
	searchTable = $("#searchTable").DataTable(dataTableConfig);
	
});

//查询
function searchPageList(){
	searchTable.ajax.reload();
}
//清除查询条件
function cleanSelect(){
	$("#templetFormStr").val('');
}

//后面构建btn 代码
var btnModel = '    \
	{{#each func}}\
    <button type="button" class="btn btn-{{this.type}} btn-sm" onclick="{{this.fn}}">{{this.name}}</button>\
    {{/each}}';
var template = Handlebars.compile(btnModel);
var searchTable;
var contentBtn;
function btnFun(c){
	contentBtn = "";
	if(contentBtn){
		return contentBtn;
	}else{
		var btnArray = new Array();
			//内置模板只允许下载
			if('0' == c.templetFlag){
				btnArray.push({"name": "下载", "fn": "downloadTemplet(\'" + c.id + "\',\'"+c.templetFileName+"\')", "type": "primary"});
			}else{
				btnArray.push({"name": "删除", "fn": "delTemplet(\'" + c.id + "\',\'"+c.templetFileName+"\')", "type": "primary"});
				btnArray.push({"name": "下载", "fn": "downloadTemplet(\'" + c.id + "\',\'"+c.templetFileName+"\')", "type": "primary"});
				btnArray.push({"name": "重新上传", "fn": "repeatOpenMode(\'" + c.id + "\',\'"+c.templetFileName+"\')", "type": "primary"});
			}
		contentBtn = {
			func:btnArray
		}
		return contentBtn;
	}
}

// 表格配置信息
var dataTableConfig = {
	"ordering": false,// 排序
	"serverSide": true,// 开启服务器模式
	"scrollX": true,// 横向滚动
	ajax: {
        "type": "POST",
        "url":'selectCustomTempletList.action',//请求路径
        "contentType": 'application/x-www-form-urlencoded; charset=UTF-8',
        "dataType":'json',
        "data":function(d){
        		d.templetName = $('#templetFormStr').val();
        		return d;
        }
	},
	columns: [// 对应列
	    {"data": "templetClassify"},
        {"data": "templetName"},
        {"data": "templetType"},
        {"data": "javaFileType"},
        {"data": "createDate"},
        {"data": null}
    ],
    "columnDefs": [
		{// 所有列默认值
			"targets": "_all",
			"defaultContent": ''
		},
       {
		// 最后一列添加按钮
        targets: -1,
        render: function (a, b, c, d) {
        	var context = btnFun(c);
            var html = template(context);
            return html;
        }
    }]
	,"dom": 'rt<"bottom"ip><"clear">' //生成样式
};

//删除模板
function delTemplet(id,templetFileName){
	
	$.ajax({
		url:"deleteCustomTemplet.action",
		data:{"id":id,"templetFileName":templetFileName},
		dataType:"text",
		type:"post",
		success:function(data){
			if('1' == data){
				alert('删除成功');
				window.location.reload();
			}
		},
		error:function(e){
			alert('删除模板出错');
		}
	})
}

//下载模板
function downloadTemplet(id,templetFileName){
	window.location.href='templetFileDownload.action?id='+id+'&templetFileName='+templetFileName;
}

//打开重新上传模态框
function repeatOpenMode(id,templetFileName){
	$("#uploadTemplet").modal("show");
	$("#idstr").val(id);
	$("#templetFileNamestr").val(templetFileName);
}
//重新上传模板
function repeatUploadTemplet(){
	
	var repeatTempletFileName = $("#repeatTempletFileName").val();
	if(null == repeatTempletFileName || '' == repeatTempletFileName){
		alert('请选择模板');
		return;
	}
	
	var templetType=repeatTempletFileName.substring(repeatTempletFileName.lastIndexOf('.')+1,repeatTempletFileName.length);
	if('ftl' != templetType){
		alert('模板只能上传ftl类型文件');
		return;
	}
	
	$(function(){
		//异步提交表单
		$("#uploadTempletForm").ajaxSubmit({
			type:'post',
			dataType:'JSON',
			timeout:100000,
			url:"repeatUploadTemplet",
			success:function(tt){
				if('success' == tt){
					alert('上传成功');
					$("#uploadTemplet").modal("hide");
					window.location.reload();
				}
			},
			error:function(XmlHttpRequest,textStatus,errorThrown){
				alert('上传失败');
			}
		}).submit(function(){return false;});//防止提交后跳转页面
	});
}

//打开模板上传模态框
function openMode(){
	$("#myModal").modal("show");
	//隐藏掉JSP文件类型
	$("#jspFileType").hide();
	
	$('#templetType option[value=java]').attr('selected',true);
	$("#javaFileType").show();
	
	//加载模板分类
	$.ajax({
		url:"selectTempletClassify.action",
		data:{},
		dataType:"JSON",
		type:"post",
		success:function(data){
			//已存在模板分类时，组合后初始化
			if(data.length>0){
				$("#templetClassify").empty();
				var dataSelect='';
				for(var i=0;i<data.length;i++){
					dataSelect+='<option>'+data[i]+'</option>';
				}
				$("#templetClassify").append(dataSelect);
				
				//初始化模板分类
				$('#templetClassify').editableSelect({
					effects:'fade',
					filter:false,
					onSelect: function (element) {
					}
				}).prop('placeholder','模板分类不存在可直接录入');
			}else{
				//不存在模板分类时直接初始化
				//初始化模板分类
				$('#templetClassify').editableSelect({
					effects:'fade',
					filter:false,
					onSelect: function (element) {
					}
				}).prop('placeholder','模板分类不存在可直接录入');
			}
		},
		error:function(e){
			alert("加载模板分类失败");
		}
	})
}

function selectFile(){
	var templetFileName = $("#templetFileNameUpload").val();
	$("#templet").val(templetFileName);
}

//重新上传模板时文件选择
function repeatSelectFile(){
	var templetFileName = $("#repeatTempletFileName").val();
	$("#repeatTemplet").val(templetFileName);
}

//保存
function uploadTemplet(){
	
	var templetClassify = $("#templetClassify").val();
	if(null == templetClassify || '' == templetClassify){
		alert('请选择或录入模板分类');
		return;
	}
	
	var templetName = $("#templetName").val();
	if(null == templetName || '' == templetName){
		alert('模板名称不能为空');
		return;
	}
	
	var templetFileName = $("#templetFileNameUpload").val();
	if(null == templetFileName || '' == templetFileName){
		alert('模板不能为空');
		return;
	}
	
	var templetType=templetFileName.substring(templetFileName.lastIndexOf('.')+1,templetFileName.length);
	if('ftl' != templetType){
		alert('模板只能上传ftl类型文件');
		return;
	}
	
	$(function(){
		//异步提交表单
		$("#templetForm").ajaxSubmit({
			type:'post',
			dataType:'json',
			timeout:100000,
			url:"uploadTemplet",
			success:function(tt){
				if('success' == tt){
					alert('上传成功');
					$("#myModal").modal("hide");
					window.location.reload();
				}else{
					alert('上传失败');
				}
			},
			error:function(XmlHttpRequest,textStatus,errorThrown){
				alert('上传失败');
			}
		}).submit(function(){return false;});//防止提交后跳转页面
	});
}

//模板类型触发方法
function setJavaFileType(value_){
	if('java' == value_){
		$("#javaFileType").show();
		$("#jspFileType").hide();
	}else if('jsp' == value_){
		$("#javaFileType").hide();
		$("#jspFileType").show();
	}else{
		$("#javaFileType").hide();
		$("#jspFileType").hide();
	}
}
